#ifndef TOKENPARSER_H
#define TOKENPARSER_H


#include <map>
#include <string>
#include <vector>
#include <set>
struct TokenParserItem
{
    std::string token;
    int     color;
    int     start;
    int     len;
};

struct TokenParserItems
{
    std::vector<TokenParserItem> items;
};

bool operator<(const TokenParserItem& first, const TokenParserItem& second);
class TokenParser
{
    TokenParser();

public:
    static bool parse(const std::string& text, TokenParserItems& items, const std::map<std::string, int>& tokenInfos);
    static bool isExclude(const std::string& text, const std::vector<std::string>& excludes);
};

#endif  // TOKENPARSER_H
